package com.mdxx.patrol.system.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;

import com.mdxx.patrol.system.bean.SysPermission;
import com.mdxx.patrol.system.dto.PermissionDto;
import com.mdxx.patrol.system.dto.RolePermissionInAllTreeDto;

import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by MD-01 on 2017/6/27.
 */

public interface SysPermissionMapper extends BaseMapper<SysPermission> {

    /**
     * 页面分页查询权限列表
     */
    List<PermissionDto> queryList(@Param("start") int start,
                                  @Param("num") int num);

    /**
     * 页面获取权限列表总数
     */
    int queryListCount();

    /**
     * 根据标识查询
     */
    SysPermission queryByTag(String tag);

    /**
     * 根据父权限id查询
     */
    List<SysPermission> queryByParentId(Integer parentId);

    /**
     * 获取所有的权限
     */
    List<SysPermission> queryAll();

    /**
     * 根据角色id获取对应的可用的权限列表
     */
    List<SysPermission> queryUsableByRoleId(Integer roleId);


    /**
     * 获取所有可用的权限
     */
    List<SysPermission> queryAllUsable();

    /**
     * 根据角色id获取所有权限,并标记已有的权限
     */
    List<RolePermissionInAllTreeDto> queryRolePermissionInAllTree(Integer roleId);

    /**
     * 根据用户名获取用户的权限
     */
    List<SysPermission> queryByMemberUsername(String username);

}
